Arranging three-dimensional models

ABSTRACT

Examples of the present disclosure relate to a method for packing three dimensional (3D) models. The method comprises identifying a plurality of sections of each 3D model according to curvature profiles of the sections; associating a build material layer thickness to each section of the plurality of sections, whereby each associated build material layer thickness is one of a set of pre-established build material layer thicknesses; packing the plurality of 3D models according to each associated build material layer thickness, whereby packing comprises spatially arranging at least some 3D models in the 3D virtual build volume according to one or more criteria, such that at least some of the sections of different 3D models associated to a same build material layer thickness are arranged in a same region of the 3D virtual build volume.

BACKGROUND

Some 3D printing systems may form successive layers of build material ona build platform and may selectively solidify regions of each layer toform three-dimensional (3D) objects in a layer-wise manner. Some 3Dmodels may consume intensive computing resources to prepare theirprinting into objects.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a representation of an example of a method according to thepresent disclosure.

FIG. 2 is a representation of an example of a method according to thepresent disclosure.

FIG. 3 is a representation of an example of a method according to thepresent disclosure.

FIG. 4 is a representation of an example of a method according to thepresent disclosure.

FIG. 5 is a representation of an example of a method according to thepresent disclosure.

FIG. 6 is a representation of an example of an apparatus and of astorage medium according to the present disclosure.

DETAILED DESCRIPTION

This disclosure relates to processing three-dimensional, or 3D, models.Three-dimensional 3D models may be digital representations or digitalfiles comprising digital information or data which may be translatedinto a tangible 3D object, for example by printing. Such 3D models mayhold information, for example information related to objects having asimple or a relatively complex shape. Some 3D printing techniques maycause objects to be generated that exhibit a visual effect namedstair-stepping. The stair-stepping effect becomes visible using a 3Dprinting layer-by-layer technique and is caused by an offset between anobject printed layers when curves of the object varies between layers.Due to the fact that the layers of an object may present discretethicknesses, a non-horizontal or a non-vertical surface may exhibit acertain degree of stair-stepping effect. This is due to thediscontinuity produced between one layer and the following layer.Solutions according to this disclosure have been developed to alleviatethe stair-stepping effect in the case of simple or relatively complex orcurved surfaces. In printing systems in which an object is generatedusing a layer-by-layer technique, stair-stepping may be alleviated byusing a layer thickness which reduces the stair-stepping effect, forexample by using a relatively thin layer for a curved object or anobject presenting a curved section. The stair-stepping effect may bereduced for a plurality of objects by controlling the manner in whichthe plurality of objects are packed or nested in a build volume orprintable box. A plurality of 3D objects may be packed according to apacking scheme which may be described by digital information specifying3D models packed in a 3D virtual build volume. Packing 3D models in a 3Dvirtual build volume should be understood as placing or arranging 3Dmodels in a position and/or orientation in which the dimensions of the3D virtual build volume are exploited according to some criteria. Inother words, packing may result in filling the 3D virtual build volumewith a plurality of 3D models, in such a way that, for example, thestair-stepping effect is alleviated or a minimum packing distance isrespected, whereby a packing distance may reduce or prevent thermalinteraction between adjacent printed objects. This disclosure proposesto arrange 3D models in a 3D virtual build volume to both control stairstepping and efficiently use the 3D virtual build volume through theassociation between build material thicknesses and sections of the 3Dmodels as will be described in more details below.

FIG. 1 represents an example of a method 100 for packing a plurality ofthree-dimensional (3D) models.

Packing may be understood as placing a set of given objects into a givencontainer. In the present disclosure packing may comprise combining aplurality of 3D models in a manner seeking to reduce a volume occupiedby the plurality of the 3D models in relation to a volume of a 3Dvirtual build volume, or in other words, to increase the built densityof a plurality of 3D models, while maintaining potential constraintssuch as constraints on an inter model distance for example. Packing mayalso comprise rotating such 3D models such that a volume is occupied by3D models to increase the built density of a plurality of 3D models. Insome examples, packing may comprise arranging 3D models linearly in a 3Dvirtual build volume. In some examples, packing may comprise arranging3D models in a staggered manner in a 3D virtual build volume. In someexamples, packing may comprise arranging 3D models in piles in a 3Dvirtual build volume. In examples of the present disclosure, the methodfor packing 3D models allows generating digital information or datawhich may be transmitted and read by a 3D printing system in order toreproduce an arrangement of 3D models specified in such packing so that3D objects are printed following such arrangement in a build volume.

The example method of FIG. 1 comprises packing a plurality of 3D models,wherein a plurality of 3D models may mean packing two or more 3D modelsor packing more than 50, or more than 500 3D models in the 3D virtualbuild volume. Packing a plurality of 3D models may comprise translatingor rotating the more then 50 or more than 500 3D models. In someexamples, packed 3D models do not overlap.

The example method of FIG. 1 comprises packing plurality 3D models in a3D virtual build volume. A 3D virtual build volume may be understood asa digital representation of a build volume or printable box in aprinting system or a 3D printer which may be used for printing 3Dobjects corresponding to the 3D models packed according to examplemethods of the present disclosure. For instance, a 3D printer may employany of fusing agent, high-speed sintering, selective laser sintering,selective laser melting, stereolithography, etc. techniques. Thus, forinstance, various types of materials, e.g., power-based materials,liquid-based materials, etc., may be used in a 3D printer. It should beunderstood that 3D printers having different configurations mayimplement the determined arrangements, or packing, of the objects, or 3Dmodels, to be printed. Other types of additive manufacturing systems onwhich features disclosed herein may be employed include systems thatemploy selective laser sintering, selective laser melting,stereolithography, etc. A build bed or build volume may also beunderstood as a space above a xy-plane, or base, in a 3D printing systemincluding a print engine which may be used to build 3D objects. A buildvolume may comprise a build platform, where, for example, a fusingprocess occurs, the platform adapted to lower layer by layer as a 3Dproduct is produced layer by layer. The first layer may be applied onthe platform, the second layer on top of the first, and so on. Theplatform, which is a tangible object, may correspond to a base of acorresponding virtual build volume. In order to build 3D objects, layersof a specific build material and a specific thickness may be formed orbuilt joining a first layer to a second layer in a build volume of aprinting system. Layers may be built one on top of the other startingfrom a base of a build volume. The layers may be built parallel to thexy-plane which is parallel to a base of the build volume and may bestacked in a z-direction or thickness direction, which is perpendicularor normal to the xy-plane. Objects to be printed may be placed anywherein the build volume. The layers of build material may have a uniqueheight or layer thickness for a whole printing process. The layers ofbuild material may have different heights or layer thicknesses for awhole printing process. A printing process may be understood as theprocess of printing all the objects belonging to a print job. In a sameprinting process, some sections of some objects may be printed with alayer thickness and some others with a different layer thickness. A 3Dvirtual build volume may present three dimensions: width, depth andheight. Some of the dimensions, for example width and depth, may befixed and may range from some tens of centimetres, for example 50 cm, tosome metres, for example 2 or 10 m. The height may be fixed or may varydepending on the number of 3D models to be packed. For example, theheight may be fixed from some tens of centimetres, for example 50 cm, tosome metres, for example 2 or 10 m. For example, the height may varydepending a number or size of 3D models, for example on packing ten 3Dmodels or packing 500 3D models. The 3D virtual build volume may presenta base, on which the plurality of 3D models may be arranged. A base of a3D virtual build volume is a digital representation of a base of a buildvolume or printable box. A base may coincide with a wall, or platform,on which 3D objects may be deposited following a layer-by-layertechnique.

The example method of FIG. 1 comprises at block 101 identifying aplurality of sections. Identifying may be understood as specifyingportions or sections of the plurality of 3D models which may respectspecific characteristics. In an example, sections presenting aparticular geometry may represent one section, or sections presenting aspecific colour in a 3D model may represent one section. A section maybe identified by curvature profiles as will be explained in more detailbelow.

A plurality of sections may be identified for a 3D model, for example 3sections or 10 sections per 3D model. Different sections may presentdifferent thicknesses, for example, for a 10 cm-height 3D object, two 4cm-sections and one 2 cm-section may be identified. The sections mayhave a thickness along a printing axis. In some examples the differentthicknesses may be measured from a base of the 3D virtual build volume.In some examples, a section may be identified for one of the layers forbuilding a plurality of objects corresponding to the plurality of 3Dmodels. In some examples, for two or more of the layers for building aplurality of objects corresponding to the plurality of 3D models, onesection may be identified. In examples where two or more layers of buildmaterial represent one section, efficiency may be improved in a printingprocess since a printing system may print using a same layer thicknessfor longer time compared with the case where one section represents onelayer and the printing system changes the layer thickness layer afterlayer. For example, one section may correspond to 5 layers associated toa build material layer thickness. This may allow a printing system tomaintain the layer thickness during the time to print the 5 layers. Alayer thickness may depend on a material for building a plurality ofobjects corresponding to the plurality of 3D models. In examples, amaterial for building a plurality of objects corresponding to theplurality of 3D models may comprise plastic or thermoplastic, or maycontain a base of elastomers based on polybutadiene that makes theobjects more flexible, and resistant to shocks. Layers for building suchplastic objects may present a thickness from 70 μm to 120 μm forexample. In examples where a section represents a layer, the section maypresent a thickness from 70 μm to 120 μm. In some examples, a materialfor building a plurality of objects corresponding to the plurality of 3Dmodels may comprise metal, such as copper, bronze or silver for example.The layers for building the plurality of objects comprising metal maypresent a thickness from 10 μm to 20 μm for example. In examples where asection represents a layer comprising metal, the section may present athickness from 10 μm to 20 μm. In some examples, a material for buildinga plurality of objects corresponding to the plurality of 3D models maycomprise ceramics or ceramic powders. The layers for building theplurality of objects comprising ceramics or ceramic powders may presenta thickness from 70 μm to 400 μm for example. In some examples, thesections are parallel to the base of the 3D virtual build volume.

The example method of FIG. 1 comprises, at block 101, identifying aplurality of sections of each 3D model according to curvature profilesof the sections.

A curvature profile may be a representation of geometrical features of a3D model or features of a surface of the 3D model. A curvature profilemay categorize the 3D models into geometrical feature categories.Categories may be defined in function of geometrical features of a 3Dmodel or of a corresponding 3D object of a 3D model. For example, acurvature profile may identify sections presenting for example asubstantially oval shape, a flat shape, a stepped shape, a convex shape,a concave shape, a discontinuous shape or a continuous shape. In anexample, a section may be identified as a section presenting apre-determined volume.

In some examples, a curvature profile of a 3D model may comprise aradius of curvature representing a distance from a set of equidistantpoints on a surface of the 3D model to a center point. In some examples,a curvature profile of a 3D model may comprise a radius of curvaturerepresenting a profile distance of a set of points on a surface of the3D model from a point, whereby the profile distance represents distancesin a tolerance range. In an example a curvature profile of a curved 3Dmodel may be 2 cm, this curvature profile representing curved surfaceswhich radius may vary from 1.7 cm to 2.1 cm, whereby the variationaround 2 cm is a tolerance range. A tolerance range may be somemillimeters, for example 5 mm, or some centimeters, for example 5 cm. Insome examples, a curvature profile of a 3D model on a surface point maybe an angle between a vector normal to a plane tangent to a surface andcontaining such surface point, and an axis. In some examples, such axismay be parallel to a base of the 3D virtual build volume. In someexamples, such axis may be normal to a base of the 3D virtual buildvolume. In some examples, a curvature profile of a 3D model may be aprofile angle between a vector normal to a plane tangent to a surfaceand containing such surface point, and an axis. In some examples, theprofile angle may represent angles in a tolerance range, for example acurvature profile of a curved 3D model may be 15°, whereby thiscurvature profile represents curved surfaces which angle may vary from14° to 20° for example, whereby the variation of about 6° may be atolerance range. In other examples, the curvature profile representscurved surfaces which angle may vary from 10° to 20°, whereby thevariation of about 10° may be a tolerance range.

Different sections may present different curvature profiles or maypresent a same curvature profile. In some examples a same section may beidentified corresponding to a number of points comprised within acurvature profile. In some examples, a specific section may beidentified corresponding to a number of points comprised within a bundleof consecutive curvature profiles, whereby consecutive curvatureprofiles may follow each other along a printing axis. In some examples asection may be a group of points, the group being parallel to a base ofthe build volume.

The example method of FIG. 1 comprises in block 102 associating a buildmaterial layer thickness to each section of the plurality of sections.Associating may be understood for example as mapping specific buildmaterial layer thicknesses to different identified sections. Objectportions corresponding to portions of the 3D models with different layerthicknesses may be printed in a printing process. On the one hand, usinglayers with a thickness of 120 μm instead of a thickness of 80 μm maypermit reducing the time to print an object. On the other hand, using alower layer thickness, such as a thickness of 70 μm, permits increasingthe definition of the object. A 3D object built with layers presenting athickness of 70 μm may however take longer to generate than a same 3Dobjects built with layers presenting a thickness of 120 μm. Examples ofthe present disclosure permit combining such effects by specifying orassociating a build material layer thicknesses to different sectionsdynamically. During a printing process, complete or whole layers of asingle thickness may be formed, so object sections which are associatedto a different layer height are arranged in the build volumeaccordingly. In some examples associating comprises associating athicker build material layer thickness from a set of pre-establishedbuild material layer thickness to sections of a 3D model arranged at ortowards a base of a build volume. For example, given a set ofpre-established build material layer thickness such as {10 μm, 20 μm, 4082 m, 120 μm} a 3D model comprising two sections in a printing directionpresenting associated thicknesses of 40 pm and 120 μm per layer at eachcorresponding section, the 3D model is rotated so that the sectionpresenting an associated thickness of 120 μm is set on, close to ortowards the base of the virtual build volume. In some examplesassociating comprises associating consecutive build material layerthicknesses from a set of pre-established build material layer thicknessto consecutive sections of a 3D model. For example, given a set ofpre-established build material layer thickness such as {10 μm, 20 μm, 40μm, 120 μm} three consecutive sections of a 3D model are associated to10 μm, 20 μm and 40 μm respectively.

The example method of FIG. 1 comprises at block 102 associating a buildmaterial layer thickness to each section of the plurality of sections,whereby each associated build material layer thickness is one of a setof pre-established build material layer thicknesses. A set ofpre-established build material layer thicknesses may be provided and themethod of the present disclosure allows associating one or several buildmaterial layer thickness to the identified sections such that a printingsystem may be set to print according to the associated build materiallayer thickness of an example method according to the presentdisclosure. The build material layer thicknesses may be comprised in arange of values from 60 μm to 120 μm. In some examples the buildmaterial layer thicknesses may be 70 μm or 80 μm or 100 μm or 120 μm.For example, an example method of the present disclosure may allowcreating a print job for a printing system to set the printing system toprint layers of build material layer thicknesses according to theassociated build material layer thicknesses of an example method of thepresent disclosure. A print job may be understood as a file received bya printing system, the print job including data and informationpermitting the printing system to print objects in a given spatialarrangement in a build volume comprised in the printing system. The setof pre-established build material thicknesses may be provided by theprinting system or may be stored in a storage unit of a processor andmay be provided by any means of communication such as WiFi, Ethernetcommunication, Bluetooth, or by readings from a storage medium. The setof pre-established build material layer thicknesses may comprise anynumber of pre-established build material layer thicknesses, for example,one or two or four or ten thicknesses, for example {10 μm, 20 μm, 40 μm,120 μm}. Such pre-determined thicknesses may be pre-determined due tospecific characteristics of a specific printer and may for examplecorrespond to hardware requirement. The solutions proposed in thecurrent disclosure permit adapting packing to specifics of a given 3Dprinter or 3D printer type, taking into account layer thicknessesdictated or pre-determined by such 3D printer or printer type.

The example method of FIG. 1 comprises in block 103 packing theplurality of 3D models according to each associated build material layerthickness. Once build material layer thicknesses are associated to theidentified sections, the plurality of 3D models are packed or nested inthe 3D virtual build volume. The packing allows spatially arranging atleast some 3D models such that the built or spatial density of aplurality of 3D models in the virtual build volume may be increased. Insome examples packing may comprise linearly arranging 3D models in a 3Dvirtual build volume. In some examples, packing may comprise arranging3D models in a staggered manner or in piles in a 3D virtual buildvolume. In some examples packing or arranging may comprise rotating someof the 3D models such that the built density of a plurality of 3D modelsin the virtual build volume may be increased, for example byapproximating the convex section of a first 3D model to a concavesection of a second 3D model. A 3D model may accept in the preparationof the packing process a specific number of rotations, for example 10rotations or 20 rotations per 3D model. The packing according to thepresent disclosure may define a layer thickness for objectscorresponding to the plurality of 3D models at each of the regions ofthe virtual build volume in function of the identified sections and theassociated build material layer thicknesses and also may reduce a layerthickness in function of the arrangement, the arrangement comprisingpositioning in a x, y, or z direction and also rotating the 3D model.The example method of FIG. 1 comprises at block 103 packing theplurality of 3D models according to each associated build material layerthickness, whereby packing comprises spatially arranging at least some3D models in the 3D virtual build volume according to one or morecriteria. A criterion is a norm or rule which may be followed by amethod for packing 3D models in order to attain an objective. One ormore criteria may comprise reducing the total number of layers forbuilding a plurality of objects corresponding to the plurality of 3Dmodels, or may comprise increasing a quality of an object correspondingto a 3D model, or may comprise reducing the height occupied by aplurality of 3D models in a 3D virtual build volume. In some examples,the one or more criteria comprise increasing the number of 3D modelspacked in the 3D virtual build volume. This increase of the number of 3Dmodels packed in the 3D virtual build volume may take place whilemaintaining or even reducing dimensions of the 3D virtual build volume,for example by mixing 3D models in the 3D virtual build volume infunction of their size, for example fitting smaller 3D models betweenspaces between larger 3D models. In some examples packing comprisesplacing the 3D models in the 3D virtual build volume in such a way thatsections associated to a thicker build material layer thickness areplaced at or towards a base of the 3D virtual build volume, for exampleto increase stability during the building process.

The example method of FIG. 1 comprises in block 103 packing theplurality of 3D models according to each associated build material layerthickness, whereby packing comprises spatially arranging at least some3D models in the 3D virtual build volume according to one or morecriteria, such that at least some of the sections of different 3D modelsassociated to a same build material layer thickness are arranged in asame region of the 3D virtual build volume. The example method of FIG. 1allows in some examples reducing the time to print since a group of 3Dobjects may be packed in a build volume of a printing system such thatsections associated to a same build material thickness may be printedsimultaneously or consecutively, in a same region of a build volume.Combining the identification of sections of the 3D models according tocurvature profiles and the arrangement in a same region of the 3Dvirtual build volume by thicknesses allows reducing the printing time ofa printing system, as a printing speed is increased in certain sectionsof the 3D model where the layer thickness is increased, while increasingthe density of the 3D objects in the build volume. Higher objectaccuracy may be provided, providing thereby a higher surface smoothnessof a printed 3D object, where the layer thickness is decreased. Theexample method 100 of FIG. 1 reduces the overall printing time bycombining layer thicknesses of a plurality of objects in a printingexecution while respecting the criteria specified by the packing such asmaintaining or increasing quality for example. The method 100 of FIG. 1allows combining different criteria such that printing time is reducedwhile, for example, maximizing quality or for example while increasingthe number of 3D models packed in the 3D virtual build volume.

The example method of FIG. 2 comprises, at block 101, identifying aplurality of sections S1, S2, S3, S4, S5 and S6 of each 3D model 207,208 according to curvature profiles of the sections. The example of FIG.2 comprises, at block 102, associating a build material layer thicknessT1, T4 to each section S1 to S6 of the plurality of sections, wherebyeach associated build material layer thickness is one of a set of 4pre-established build material layer thicknesses T1, T2, T3, T4. Theexample of FIG. 2 comprises, at block 103, packing the plurality of 3Dmodels 207, 208 according to each associated build material layerthickness, whereby packing comprises spatially arranging at least some3D models in the 3D virtual build volume 201 according to one or morecriteria, such that at least some of the sections S1, S2, S3, S4, S5 andS6 of different 3D models 207, 208 associated to a same build materiallayer thickness are arranged in a same region 202, 203, 204, 205 or 206of the 3D virtual build volume 201. For illustration purposes, FIG. 2represents an example in which 4 pre-established build material layerthicknesses T1, T2, T3 and T4 are provided. In the example of FIG. 2,sections S1, S2, S3, S4, S5 and S6 may be identified. Each section mayrepresent several layers of thickness T1, T2, T3 or T4 of corresponding3D objects to be printed. Some of the sections such as S3 and S4 of thetwo illustrated spherical 3D models 207 and 208 are associated to thesame build material layer thickness, for example, S3 in a first 3D model207 and S4 in a second 3D model 208 are associated to a same buildmaterial layer thickness T1 as shown in FIG. 2. In other words, layersof corresponding 3D objects to be printed in such sections S3 and S4would present a layer thickness T1, as indicated in FIG. 2. In FIG. 2the spatial arrangement applies the criteria or norm that at least someof the sections S3, S4 of different 3D models 207, 208 associated to asame build material layer thickness T1 are arranged in a same region 204of the 3D virtual build volume 201. A printing system may print twoobjects corresponding to 3D models 207 and 208 by a layer-by-layertechnique. One should note in this example that the 3D models arespherical, and that the sections are identified considering, generallyspeaking, the angle formed between a plane tangential to a surface andthe printing axis which, on the representation of FIG. 2, would bevertical. In particular, the sections S2 and S5 comprise a surface of 3Dmodel which follows a relatively reduced angle to the printing axis,compared to the sections S1, S3, S4 and S6 which follow a relativelylarge angle to the printing axis. In order to avoid a stair steppingeffect, sections S1, S3, S4 and S6 would use a build material layerthickness T1 more reduced than the build material layer thickness T4used for S2 and S5 for each of the layers of the objects correspondingto 3D models 207 and 208. In the example method of FIG. 2, thickness T1is associated also to sections S1 and S6, but these sections S1 and S6are not arranged in a same region of the 3D virtual build volume sincein this example the two 3D models 207, 208 do neither fit in line in anhorizontal axis of the build volume nor in a vertical axis. Two portionsof both 3D objects 209, 210 are overlapped, providing thereby thestaggered arrangement shown in FIG. 2, at block 103. This distributionleads to arrange the 3D models 207 and 208 such that sections S1 and S6are not arranged in a same region of the 3D virtual build volume 201.Note that sections S2 and S5 which would be less sensitive tostair-stepping may be associated to build material layer thickness T4whereby T4 is larger than T1, thereby permitting gaining time whenbuilding such sections.

In an example method 100 of FIG. 3 one or more criteria may comprisereducing 301 the number of layers for building a plurality of objectscorresponding to the plurality of 3D models. This example method allowsarranging the 3D models such that a printing system may be set to printaccording to the packing and may allow reducing the time to print ofsuch printing system. Reducing the total number of layers, for exampleto a minimum to print a 3D object, results in employing less time toprint and increasing thereby the efficiency of a printing system.

In an example method 100 of FIG. 3, packing a plurality of 3D models maycomprise, at block 302, determining, for each 3D model of the plurality,a resulting build material layer thickness by iteratively associatingintermediate build material layer thicknesses; wherein packing comprisesapplying constraints on dimensions of the 3d virtual build volume. Aresulting build material layer thickness should be understood as a buildmaterial layer thickness associated with a section which is obtained byiteration of a method according to this disclosure, iteration whichprogressively permits to comply with increasing constraints. Such aresulting build material layer thickness may for example be obtainedafter 3 iterations, whereby the last iteration leads to determining theresulting build material layer thickness while the earlier iterationslead to determining intermediate build material layer thicknesses asassociated to a section. By iteratively associating intermediate buildmaterial layer thicknesses, packing comprises applying constraints ondimensions of the 3D virtual build volume 201. Applying constraints ondimensions of the 3D virtual build volume may be understood as arrangingthe 3D models such that the available volume of the 3D virtual buildvolume 201 is used to print a number of 3D objects for a given 3Dvirtual build volume. Combining reducing the total number of layers anditeratively associating intermediate build material layer thicknessessuch that, for example, a 1m3-3D virtual build volume 201 is used,allows obtaining an optimum or improved solution for printing anincreased number of 3D objects in a printing process for such a 1m3-3Dvirtual build volume 201. The number of iterations may vary depending onthe number of 3D models to be packed, or on the number of rotations per3D model. In some examples, a number of iterations may comprise 300iterations. In some examples iteratively associating intermediate buildmaterial layer thicknesses comprises performing a method according tothe present disclosure 200 times or 300 times or 5000 times, until aresulting build material layer thickness is obtained for each section ofall or some of the plurality of 3D models of the present disclosure.

An example method of the present disclosure allows operating a firstiteration comprising associating a first build material layer thicknessof 70 μm per layer to a one identified section such that 9 layers areprinted for building a 3D object. If a printing system is used whichtakes 2 seconds to build a layer, the first intermediate build materiallayer thickness of 70 μm allows printing the 9 layers in 18 seconds. Theexample method allows operating a second iteration comprisingassociating a second intermediate build material layer thickness to oneidentified section comprising layers of 120 μm such that 6 layers arebuilt for building a 3D object. If a printing system which takes 2seconds to build a layer is used, the second intermediate build materiallayer thickness of 120 μm allows printing the 6 layers in 12 seconds.This example method allows thereby determining for example a 120 μmbuild material layer thickness thereby increasing by about 70% the buildmaterial layer thickness and correspondingly reducing the time to printa 3D object by about 30% for printing a number of 3D models. Associating120 μm build material layer thickness to the sections may however leadto reducing quality of the corresponding 3D objects through an increasedstair-stepping effect. The same example method allows operating a thirditeration comprising associating a third intermediate build materiallayer thickness of 70 μm to a first section and to a second section of a3D model and a fourth intermediate build material layer thickness of 120μm to a third section of the 3D model. If in such a case the 3D modelwould be spherical such as one of 3D models 207 or 208 of FIG. 2, T1 maycorrespond to 70 μm and T4 to 120 μm. Such third iteration may lead to acompromise between time to print and quality of the first, second andthird sections of a 3D object. Combining different thicknesses for thefirst, second and third sections results in an employed time to print a3D model of 14 seconds for 7 layers per 3D model. The third iterationmay be chosen as a resulting solution comprising a resulting buildmaterial layer thickness for each of the first, second and thirdsections, since it is an improved iteration compared with the firstiteration in terms of time to print, and it is an improved iterationcompared to the second iteration in terms of quality. The describedexample allows dynamically changing the layer thickness during aprinting process, when the third iteration is chosen as the resultingsolution. The number of iterations may vary depending on the number of3D models to be packed, or on the number of rotations per 3D model. Insome examples, a number of iterations may comprise 500 iterations. Insome examples iteratively associating intermediate build material layerthicknesses comprises performing a method according to the presentdisclosure 100 times or 500 times or 1000 times, until a resulting buildmaterial layer thickness is obtained for each section of all or some ofthe plurality of 3D models of the present disclosure.

In some examples the intermediate build material layer thicknesses maybe associated to sections given an intermediate rotation. In otherwords, intermediate build material layers thickness may be associatednot only to 3D models positioned in a plurality of positions in the x,y, z axis but also to a plurality of rotations per 3D model. A 3D modelmay accept a specific number of rotations, for example 10 rotations or20 rotations per 3D model. The packing according to the presentdisclosure associates a layer thickness for objects corresponding to theplurality of 3D models at each of the regions of the virtual buildvolume in function of the identified sections and the associated buildmaterial layer thicknesses and also optimizes a layer thickness infunction of the arrangement, the arrangement comprising positioning 3Dmodels in a x, y, or z direction and also rotating the 3D models.

In an example method 100 of FIG. 3 packing comprises, at block 303,reducing a quality of specific 3D models while reducing the total numberof layers for building a plurality of objects corresponding to theplurality of 3D models. Quality may be understood as how closely atangible object printed out in layers through 3D printing corresponds toits related 3D model, or for example as an alignment between an object'sprinted layers with the corresponding 3D model curvature profile. Anincrease in quality of a 3D model may represent a decrease of a stairstepping effect or offset between layers of a printed 3D object. Inother words, more quality may mean less offset between layers of aprinted 3D object. In these examples, whereas both quality and number oflayers are iteratively determined in order to associate a resultingbuild material layer thickness which satisfies a compromise betweenresolution or quality and time to print, the reduction of the number oflayers is prioritized in case of conflict. In other words, if quality isdetermined per iteration, whereby a first iteration comprisesassociating a build material layer thickness which may increase aquality and may increase the number of layers and whereby a secondsolution may reduce the number of layers to the detriment of quality,then the second iteration would be retained as resulting iteration,determining thereby the resulting associated build material layerthickness and giving priority to timeliness over quality.

In an example method 100 of FIG. 3 the one or more criteria comprises,at block 304, increasing a quality of specific 3D models, whereby thequality of a 3D model depends on the spatial arrangement of the 3Dmodel. Quality may be understood as explained above. The quality of anobject may be increased by associating a build material layer thicknessto each layer in such a way that stair stepping is minimized or reduced.Packing a plurality of 3D models in a 3D virtual build volume comprisesthat different 3D models are fitted into the 3D virtual build volume,wherein the 3D virtual build volume presents pre-defined dimensions, forexample, a pre-defined width, a pre-defined depth, or a pre-definedheight. Such pre-defined dimensions may coincide with dimensions of abuild volume comprised in a printing system configured to receiveinstructions for printing according to an example method of the presentdisclosure. The quality of a 3D model may be increased if, instead offitting all of the plurality of 3D models into the 3D virtual buildvolume, some of the 3D models are fitted so that a section of the 3Dmodel is associated to a build material layer thickness which maximizesor improves the quality of the 3D model. Such arrangement may, forexample, increase the space between models thereby reducing the numberof 3D models which may fit into the 3D virtual build volume. The qualityof a 3D model depends on the spatial arrangement of the 3D model, sincedifferent regions of the 3D virtual build volume in which the 3D modelsare arranged may be associated to the associated build material layerthickness of the sections.

In an example method (not represented in the figures) the one or morecriteria comprises increasing a number of layers and increasing aquality of specific 3D models, whereby the quality of a 3D model dependson the spatial arrangement of the 3D model. This example method allowsassociating a build material layer thickness for a plurality of sectionssuch that quality is prioritized in case of conflict between quality andreduction of number of layers. In other words, if quality is determined,a build material layer thickness improving quality would be associatedeven if such build material layer thickness may increase the number oflayers for building a corresponding object. The quality of a 3D modelalso depends on the spatial arrangement of the 3D model, since differentregions of the 3D virtual build volume in which the 3D models arearranged may be associated to the associated build material layerthickness of the sections. Increasing quality of a 3D object may implyassociating a build material layer thickness to a section, and thereby aregion of the 3D virtual build volume, even if some sections may bearranged in regions where the number of layers to print such 3D model isincreased.

In the example method of FIG. 3 the one or more criteria comprises, atblock 305, increasing a number of layers and increasing a quality ofspecific 3D models, whereby the quality of a 3D model depends on thespatial arrangement of the 3D model, wherein packing comprisesdetermining a resulting build material layer thickness by iterativelyassociating intermediate build material layer thicknesses; and whereinpacking comprises applying constraints on dimensions of the 3D virtualbuild volume. In these examples both quality and number of layers areiteratively determined such that an increase of quality is prioritized.In other words, if quality is determined per iteration, whereby a firstiteration comprises associating a build material layer thickness whichmay increase a quality and may increase the number of layers and wherebya second solution may reduce the number of layers to the detriment ofquality, then the first iteration would be retained as resultingiteration, determining thereby the resulting associated build materiallayer thickness. In some examples the intermediate build material layerthicknesses may be associated to sections given an intermediaterotation. In other words, intermediate build material layers thicknessmay be associated not only to 3D models positioned in a plurality ofpositions in the x, y, z axis but also to a plurality of rotations per3D model. Applying constraints on dimensions of the 3D virtual buildvolume may be understood as arranging the 3D models such that theavailable volume of the 3D virtual build volume 201 is used to print anumber of 3D objects for a given 3D virtual build volume. Combiningreducing the total number of layers and iteratively associatingintermediate build material layer thicknesses such that, for example, a1m3-3D virtual build volume 201 is used, allows obtaining an optimum orimproved solution for printing an increased number of 3D objects in aprinting process for such a 1m3-3D virtual build volume 201.

In some examples the 3D models are meshed into finite elements. In anexample method of FIG. 4 the 3D model 401 is meshed into finite elements402, which in the example of FIG. 4 are triangles 402. The examplemethod of FIG. 2 comprises, at block 408, meshing the 3D models intofinite elements. The meshing may be achieved by a processor encoding the3D models' geometry into so-called “tessellations”. Tessellation is theprocess of tiling a surface with one or more geometric shapes such thatthere are no overlaps or gaps. Such geometric shapes may for example behexagons, triangles, squares, or other polygons.

The example method of FIG. 4 comprises, at block 407, specifying thecurvature profiles of the sections according to curvatures of the finiteelements; wherein a curvature is an angle between a printing axis and avector normal to a plane comprising a finite element; whereby theprinting axis is an axis normal to a base of the 3d virtual buildvolume. The curvature profiles are specified according to curvatures ofthe finite elements 402; wherein a curvature is an angle between aprinting axis “z” and a vector “n” normal to a plane comprising a finiteelement 403; whereby the printing axis “z” is an axis normal to a base404 of the 3D virtual build volume 405. A processor may use triangulartiles 402 to cover the surface of the 3D model 401. The vertices andnormal vectors of such triangles encode the geometry of the 3D model401. The size of the triangles may approximate portions of curvedregions and may vary depending on the geometry of the curved regions.For example, the size of the triangles may be comprised in a range ofvalues varying from 0.0016 mm2 to 5000 mm2. A curvature may bedetermined at each of the triangles or tiles of the contours or surfaceof the 3D model relative to a printing axis “z” and a normal surfacevector “n”, as an angle “a”. The angle “a” or curvature at each trianglemay be comprised in a range from 1° to 180°. In the example of FIG. 4, acurvature profile of a section of the 3D model 401 on a triangle 403 maycomprise the angle “a” between a vector “n” normal to a plane tangent tothe surface of the triangle 403 and containing such triangle 403, andthe “z” axis, for each triangle comprised in the section. In the exampleof FIG. 4, such “z” axis is normal to the base 404 of the 3D virtualbuild volume. In the example of FIG. 4, a curvature profile of a sectionof a 3D model may comprise profile angles 406 for a group of trianglesforming the section, comprising angles comprised in a tolerance range,between a vector “n” normal to a plane tangent to the group of trianglesand containing such triangles, and the “z” axis. For example a curvatureprofile may be represented as a spherical segment 406, whereby thiscurvature profile represents curved surfaces which angle may vary from14° to 20° for example, whereby the variation of about 6° between 14 and16 degrees may be a tolerance range. In the example of FIG. 4, a sectionmay be identified whereby the section coincides with curvature profile406. In another example, a section may be identified whereby a sectioncomprises two or more curvature profiles.

In some example methods, specifying curvature profiles comprisesidentifying curvatures comprised in tolerance ranges and a number offinite elements presenting the identified curvatures. In the example ofFIG. 4, a curvature profile 406 may be specified whereby the curvatureprofile may comprise profile angles which may vary from 14° to 20° forexample, whereby the variation around 6° may be a tolerance range. Insome example methods, identifying a number of sections of the 3D modelscomprises bundling some of the finite elements presenting the identifiedcurvatures, whereby bundling some of the finite elements may beunderstood as building a group of finite elements, for example,triangles 403, for identifying a section. In the example method of FIG.4, the spherical segment 406 may be a bundle of triangles 403 presentinga curvature profile comprising angles which may vary from 14° to 20°.Such bundle of triangles 403 may identify a section.

In some examples, a 3D model may be meshed into finite elements ofdifferent sizes. Meshing the 3D models into different sized finiteelements, or triangles in the example of FIG. 4, may increase theaccuracy when approximating a curved surface of the 3D model with afinite element. For example, the sphere 401 in FIG. 4 may be meshed intofinite elements which may be relatively smaller on the poles of thesphere than finite elements on the equator of the sphere, the poles andequator being defined according to the printing axis which wouldcorrespond to the axis of rotation of the earth. This may allowrepresenting the curved surface of the poles more accurately than if thepoles where meshed into finite elements of the size of the triangles onthe equator. In these examples, bundling may comprise weighing thefinite elements of a first size and finite elements of a second sizeaccording to a resolution unit and bundling several sections of the 3Dmodel according to a number of resolution units presenting theidentified curvatures. The area of the finite elements may be weighed ornormalized to a resolution unit, for example a voxel, or a pixel, or anyother resolution unit. This may allow bundling a number of resolutionunits in order to identify sections of the 3D model independently formthe size of triangles. This bundling of resolution units mayindependence the identification of sections from the size of the finiteelements chosen by a processor when meshing the 3D models. Examplemethods of the present disclosure may be adapted to different 3D modelswhich have been generated by different processors using, each processor,a type of meshing algorithm.

In some example methods, packing 3D models may be performed iteratively,whereby iterations may be performed using machine learning methods. Inan example, a machine learning method includes a classification method.In an example, the classification method corresponds to one or more ofsupport vector machines (SVM), random forest (RF) and artificial neuralnetworks (ANN).

An SVM classification method may aim at defining an optimal hyperplanein an n-classification space, situating data points in differentcategories depending on which side of the hyperplane they fall. In anexample, one or more hyperplanes are defined which correspond todetermining an arrangement configuration comprising identifying sectionsof a 3D model and associating build material layer thicknesses. If ageometrical template would be associated to a specific section at aposition X (X being for example a 3 dimensional vector comprisingpositions x, y and z) of the template, and if a hyperplane P correspondsto X=X1 (being a specific position defined by coordinates x1, y1 andz1), the specific geometrical template will be placed on one side of theplane if X>X1 and on the other side of the plane if X<X1. One shouldunderstand that such hyperplanes are virtual planes. The SVMclassification method can be trained using recommendations ofidentification of sections and association of build material layersthicknesses to each section by a designer to locate the hyperplanes suchthat they follow gaps in the data. For example, if geometrical templateshave an identification of a section X close to an X2 and othergeometrical templates have an X value close to an X3 separated from X2by a wide gap, a hyperplane can be placed between X2 and X3 separatingthe two groups of templates. Using an SVM will thereby allow classifyingtemplates in various categories according to one or more hyperplanes,each category being associated to an identification of a section andassociation to corresponding build material layer thickness. A symbolicrepresentation 501 limited to two dimensions in FIG. 5a includes a groupof templates such as templates 502 or 503 located on a virtual map, forexample in function of the volume of the geometrical template along afirst axis 504 and in function of the distance between identifiedsections and a geometrical center of the corresponding geometricaltemplate along a second axis 505. In the representation 501, template503, having a volume higher than template 502, would be associated to asection identification further away from its geometrical center thantemplate 502. Using SVM can in this example lead to defining hyperplane506 leading to classifying the templates in two groups, whereby thegroup comprising 503 and located on one side of 506 is more likely toindicate the identification of a section closer to its geometricalcenter than the group comprising 502 and located on the other side of506. In other examples, such modeling takes place along “n” dimensionsand with high sample numbers which do not permit a schematicrepresentation.

An RF classification method can be described as an assembly of decisiontrees where each tree includes branches which allow classifyinggeometrical templates according to their characteristics, for example infunction of their volume. In an example, each template is related to apacking of 3D models comprising section identification and buildmaterial thickness association. In an example, numerous templates areprocessed by the decision tree, whereby each template data follows itsspecific path through the decision tree. Templates having the same orsimilar characteristics will follow the same path within theclassification tree. Running such templates through the decision treetherefore leads in a learning phase to identifying the specific branchesof the tree being linked to a specific section identification. Suchlearning phase may take place based on recommendation of sectionidentification from a designer with a number of templates, leading forexample to building numerous decision trees with many branches each,including paths that discriminate among different templates and sectionidentification. A symbolic representation in FIG. 5b represents adecision tree 510, whereby path 511 was identified in a learning phaseas corresponding to a specific section identification, and whereby path512 was identified in a learning phase as corresponding to anothersection identification. At each intersection such as 513 a test such asfor example “Is the section identified towards the center of thetemplate” is made. This is of course a symbolic representation and RFprocessing of section identification can be significantly more complex.In an example, RF processing builds a tree, whereby each branch of thetree represents a template or group of similar templates, whereby eachbranch is associated to a section identification. Classification mayincrease in precision as additional templates are processed. Thisprogressive process is referred to as the learning phase, whereby RFclassification becomes increasingly trained.

The ANN method can be described as a number of artificial neurons orcells, each cell processing quantitative inputs and providing resultingoutputs, the outputs being a mathematical function of the inputs, themathematical function comprising parameters such as one or more weights,the weights being progressively adjusted as the network (i.e. theplurality of cells) is learning towards reflecting the logical structureof the data. In an example, the input can be the templates, the outputbeing a related section identification. In a first phase, the variousmathematical functions may return a first set of section identificationwhich are not in line with appropriate section identification, such thatsuch first set of identified sections would be modified by a designer.The ANN method will then adjust the weights of the mathematicalfunctions to adjust section identification towards appropriate sectionidentification. Progressively, the network will reflect a situationcorresponding to real section identifications provided by the designer,such that section identification may be predicted when newly submittedtemplates are used as inputs. A symbolic representation in FIG. 5cillustrates ANN process 520, whereby various templates F are used asinputs 521 for cells or artificial neurons 522 including mathematicalfunctions f, the neurons 522 having for example section identification Pas outputs 523. Each mathematical function f comprising weights whichare adjusted until the artificial neural system reflects a relationshipbetween templates and section identification close to what a designerwould recommend.

FIG. 6 is a block diagram of an example apparatus 600 according to thepresent disclosure. Such an apparatus 600 may be comprised in a 3Dprinting system or may be external to a 3D printer. The apparatus 600may comprise an interface to communicate with a 3D printing device. Theapparatus may be a computing device or a controller, such as a personalcomputer, a server computer, a printer, a 3D printer, a smartphone, atablet computer, etc. The apparatus 600 is depicted as including aprocessor and a machine-readable storage medium or data storage coupledto the processor. The processor may for example be any one of a centralprocessing unit (CPU), a semiconductor-based microprocessor, anapplication specific integrated circuit (ASIC), and/or other hardwaredevice suitable for retrieval and execution of instructions stored inthe machine-readable storage medium or data storage. The apparatus 600may comprise a recognition module to recognize sections of the 3D modelsaccording to curvatures of the sections of the 3D models. The apparatus600 may comprise a relation module to relate a build material layerthickness to each of the curvatures, whereby each associated buildmaterial layer thickness is one of a set of pre-established layerthicknesses. The apparatus 600 may comprise an arrangement module toarrange the plurality of 3D models according to each associated buildmaterial layer thickness, whereby arranging comprises arranging the 3Dmodels in the virtual build volume according to one or more criteria,such that at least some sections of different 3D models associated to asame build material layer thickness are arranged in a same region of thevirtual build bed.

The processor may fetch, decode, and execute instructions of aninstruction set stored on the machine-readable storage medium tocooperate with the processor and the data storage according to thisdisclosure for packing a plurality of three-dimensional (3D) models in a3D virtual build volume, by: identifying a plurality of sections of each3D model according to curvature profiles of the sections; associating abuild material layer thickness to each section of the plurality ofsections, whereby each associated build material layer thickness is oneof a set of pre-established build material layer thicknesses; packingthe plurality of 3D models according to each associated build materiallayer thickness, whereby packing comprises spatially arranging at leastsome 3D models in the 3D virtual build volume according to one or morecriteria, such that at least some of the sections of different 3D modelsassociated to a same build material layer thickness are arranged in asame region of the 3D virtual build volume.

The apparatus 600 may be such that the instruction set comprisesinstructions to list a plurality of sections of a plurality of 3D modelsaccording to curvatures of the sections of the 3D models, and to a setof pre-established layer thicknesses; instructions to link a buildmaterial layer thickness to each of the plurality of sections of each 3Dmodel, whereby each associated build material layer thickness is one ofthe set and instructions to nest the plurality of 3D models according toeach associated build material layer thickness, whereby nestingcomprises spatially arranging at least some 3D models in a virtual buildvolume according to one or more criteria, such that at least somesections of different 3D models associated to a same build materiallayer thickness are arranged in a same region of the virtual buildvolume. The processor and modules may be configured to operate accordingto any of the methods described in this disclosure.

The machine-readable storage medium or data storage may be anyelectronic, magnetic, optical, or other physical storage device thatcontains or stores executable instructions. Thus, the machine-readablestorage medium may be, for example, Random Access Memory (RAM), anElectrically Erasable Programmable Read-Only Memory (EEPROM), a storagedevice, an optical disc, and the like. In some implementations, themachine-readable storage medium may be a non-transitory machine-readablestorage medium, where the term “non-transitory” does not encompasstransitory propagating signals. Machine-readable storage medium may beencoded with a series of instructions executable by a processor to lista plurality of sections of a plurality of 3D models according tocurvatures of the sections of the 3D models, and to a set ofpre-established layer thicknesses; to link a build material layerthickness to each of the plurality of sections of each 3D model, wherebyeach associated build material layer thickness is one of the set; and tonest the plurality of 3D models according to each associated buildmaterial layer thickness, whereby nesting comprises spatially arrangingat least some 3D models in a virtual build volume according to one ormore criteria, such that at least some sections of different 3D modelsassociated to a same build material layer thickness are arranged in asame region of the virtual build volume. The instructions may cause aprocessor to carry out any of the methods described in this disclosure.

The preceding description has been presented to illustrate and describecertain examples. Different sets of examples have been described; thesemay be applied individually or in combination, sometimes with asynergetic effect. This description is not intended to be exhaustive orto limit these principles to any precise form disclosed. Manymodifications and variations are possible in light of the aboveteaching. It is to be understood that any feature described in relationto any one example may be used alone, or in combination with otherfeatures described, and may also be used in combination with anyfeatures of any other of the examples, or any combination of any otherof the examples.

1. A method for packing a plurality of three-dimensional (3D) models ina 3D virtual build volume, the method comprising: identifying aplurality of sections of each 3D model according to curvature profilesof the sections; associating a build material layer thickness to eachsection of the plurality of sections, whereby each associated buildmaterial layer thickness is one of a set of pre-established buildmaterial layer thicknesses; packing the plurality of 3D models accordingto each associated build material layer thickness, whereby packingcomprises spatially arranging at least some 3D models in the 3D virtualbuild volume according to one or more criteria, such that at least someof the sections of different 3D models associated to a same buildmaterial layer thickness are arranged in a same region of the 3D virtualbuild volume.
 2. A method in accordance with the method of claim 1wherein the one or more criteria comprises reducing a total number oflayers for building a plurality of objects corresponding to theplurality of 3D models.
 3. A method in accordance with the method ofclaim 2 wherein packing comprises determining a resulting build materiallayer thickness by iteratively associating intermediate build materiallayer thicknesses; and wherein packing comprises applying constraints ondimensions of the 3D virtual build volume.
 4. A method in accordancewith the method of claim 3 wherein packing comprises reducing a qualityof specific 3D models.
 5. A method in accordance with the method ofclaim 1 wherein the one or more criteria comprises increasing a qualityof specific 3D models, whereby the quality of a 3D model depends on thespatial arrangement of the 3D model.
 6. A method in accordance with themethod of claim 5 wherein the one or more criteria comprises increasinga number of layers; wherein packing comprises determining a resultingbuild material layer thickness by iteratively associating intermediatebuild material layer thicknesses; and wherein packing comprises applyingconstraints on dimensions of the 3D virtual build volume.
 7. A method inaccordance with the method of claim 1 comprising meshing the 3D modelsinto finite elements.
 8. A method in accordance with the method of claim7 comprising specifying the curvature profiles of the sections accordingto curvatures of the finite elements; wherein a curvature is an anglebetween a printing axis and a vector normal to a plane comprising afinite element; whereby the printing axis is an axis normal to a base ofthe 3D virtual build volume.
 9. A method in accordance with the methodof claim 8 comprising: identifying curvatures comprised in toleranceranges and a number of finite elements presenting the identifiedcurvatures; identifying a number of sections of the 3D models bybundling some of the finite elements presenting the identifiedcurvatures.
 10. A method in accordance with the method of claim 9comprising meshing a 3D model into finite elements of different sizes;wherein bundling comprises: weighing the finite elements of differentsizes according to a resolution unit; and bundling several sections ofthe 3D model according to a number of resolution units presenting theidentified curvatures.
 11. A method in accordance with the method ofclaim 1, wherein the one or more criteria comprises reducing a spaceoccupied by the packed 3D models in the 3D virtual build volume.
 12. Amethod in accordance with the method of claim 1, wherein the one or morecriteria comprise increasing the number of 3D models packed in the 3Dvirtual build volume.
 13. An apparatus for arranging three-dimensional(3D) models in a virtual build bed, the apparatus comprising aprocessor; a storage coupled to the processor; a recognizing module torecognize sections of the 3D models according to curvatures of thesections of the 3D models; a relating module to relate a build materiallayer thickness to each of the curvatures, whereby each associated buildmaterial layer thickness is one of a set of pre-established layerthicknesses; an arrangement module to arrange the plurality of 3D modelsaccording to each associated build material layer thickness, wherebyarranging comprises arranging the 3D models in the virtual build volumeaccording to one or more criteria, such that at least some sections ofdifferent 3D models associated to a same build material layer thicknessare arranged in a same region of the virtual build bed.
 14. An apparatusin accordance with the apparatus of claim 13 comprising an interface tocommunicate with a 3D printing device.
 15. A non-transitory machinereadable storage medium encoded with instructions executable by aprocessor, the machine-readable storage medium comprising: instructionsto list a plurality of sections of a plurality of 3D models according tocurvatures of the sections of the 3D models, and to a set ofpre-established layer thicknesses; instructions to link a build materiallayer thickness to each of the plurality of sections of each 3D model,whereby each associated build material layer thickness is one of theset; and instructions to nest the plurality of 3D models according toeach associated build material layer thickness, whereby nestingcomprises spatially arranging at least some 3D models in a virtual buildvolume according to one or more criteria, such that at least somesections of different 3D models associated to a same build materiallayer thickness are arranged in a same region of the virtual buildvolume.